#include<iostream>
using namespace std;
struct node
{
	int time,value;
}t[101];
int dp[1001];
int main()
{
	int T,M;
	cin>>T>>M;
	for(int i=1;i<=M;i++)
		cin>>t[i].time>>t[i].value;
	for(int i=1;i<=M;i++)
	{
		for(int j=T;j>=t[i].time;j--)
		{
			if(j>=t[i].time)
				dp[j]=max(dp[j],dp[j-t[i].time]+t[i].value);
		}
	}
	cout<<dp[T];
}
